MDX funkcije

CubePlayer vam omogućava da koristite širok raspon MDX funkcija u MDX Dizajneru:

Funkcije koje možete koristiti su:

 

CubePlayer funkcije

MDX funkcije korištene za izradu CubePlayer funkcija

Najboljih N

Odgovara MDX funkciji TopCount

Najboljih N u sumi

Odgovara MDX funkciji TopSum

Najboljih N u %

Odgovara MDX funkciji TopPercent

Najlošijih N

Odgovara MDX funkciji BottomCount

Najlošijih u sumi

Odgovara MDX funkciji BottomSun

Najlošijih N u %

Odgovara MDX funkciji BottomPercent

Poredaj

Odgovara MDX funkciji Order

Poredaj po abecedi

Kombinacija Order funkcije i uvjeta

Poredaj po hijerarhiji

Odgovara MDX funkciji Hierachize

Filter

Odgovara MDX funkciji Filter

Ukloni

Kombinacija Filter (i NOT članovi …)

Prvih N

Odgovara MDX funkciji Head

ZadnjihN

Odgovara MDX funkciji Tail

Doprinosi

Posebna sintaksa

Za svakog iz prethodne dimenzije

Implementacija MDX Generate funkcije

Bez praznih

Non Empty

Prikaži totale za vidljive elemente

VisualTotals

Usporedni vremenski članovi

Implementacija MDX ParallelPeriods funkcije

Drill down – razine

Spusti na razinu

 

Dostupnost CubePlayer funkcija u ovisnosti o osi (redovi ili stupci) gdje se žele primijeniti:

 

MDX funkcije

CubePlayer nazivi i funkcije

Redovi

Stupci

TopCount

Najboljih N

DA

DA

TopSum

Najboljih N u sumi

DA

DA

TopPercent

Najboljih N u %

DA

DA

BottomCount

Najlošijih N

DA

DA

BottomSun

Najlošijih u sumi

DA

DA

BottomPercent

Najlošijih N u %

DA

DA

Order

Poredaj

DA

DA

 

Poredaj po abecedi

DA

DA

Hierachize

Poredaj po hijerarhiji

DA

DA

Filter

Filter

DA

DA

Filter (and NOT members …)

Ukloni

DA

DA

Head

Prvih N

DA

DA

Tail

ZadnjihN

DA

DA

 

Doprinosi

DA

NE

Generate

Za svakog iz prethodne dimenzije

DA

DA

Non Empty

Bez praznih

DA

DA

VisualTotals

Prikaži totale za vidljive elemente

DA

DA

Implementacija MDX ParallelPeriods funkcije

Usporedni vremenski članovi

DA

DA

Spusti na razinu

Drill down – razine

DA

DA

 

S obzirom da MDX funkcije mogu biti primijenjene na nekoliko mjesta unutar osi (redovi stupci) u CubePlayeru raspoznajemo tri

tipa funkcija:

·          Funkcije na osi (set funkcije)

·          Dimenzijske funkcije

·          Element funkcije unutrašnje funkcije)

 

FUNKCIJE NA OSI

Funkcije na osi uvijek se primjenjuju na cijelu os bez obzira na broj dimenzija/hijerarhija na osi.

Primjer                      Imamo razinu State Province u Stupcima

Primijenit ćemo TopCount 100 (Najboljih 100) na cijeloj osi.

 

SELECT

NON EMPTY

TopCount

    (

        {

        [Customer].[hCountry].[State Province].MEMBERS

        }

        ,100, [Measures].[Store Sales]

    )

ON AXIS(0)

FROM

[Sales]

 

Sada dodajmo još jednu dimenziju/hijerarhiju, recimo Product Family. Ona će biti pridodana automatski unutar funkcije TopCount.:

 

SELECT

NON EMPTY

TopCount

    (

    CrossJoin

        (

            {

            [Customer].[hCountry].[State Province].MEMBERS

            },

            {

            [Product].[hProduct].[Product Family].MEMBERS

            }

        )

        ,100, [Measures].[Store Sales]

    )

ON AXIS(0)

FROM

[Sales]

 

Isto će se dogoditi kad dodamo treću dimenziju:

 

SELECT

NON EMPTY

TopCount

    (

    CrossJoin

        (

        CrossJoin

            (

                {

                [Customer].[hCountry].[State Province].MEMBERS

                },

                {

                [Product].[hProduct].[Product Family].MEMBERS

                }

            ),

            {

            [Store].[hStoreType].[Store Type].MEMBERS

            }

        )

        ,100, [Measures].[Store Sales]

    )

ON AXIS(0)

FROM

[Sales]

 

DIMENZIJSKE FUNKCIJE

Dimenzijske funkcije uvijek se dodaju na jednu dimenziju/hijerarhiju bez obzira koliko članova i/ili razina iz

te dimenzije se nalazi na osi:

 

Primjer                      Imamo razinu State Province u Stupcima

Primijenit ćemo TopCount 100 (Najboljih 100) na dimenziju Customer (odakle je razina State Province)

 

SELECT

NON EMPTY

TopCount

    (

        {

        [Customer].[hCountry].[State Province].MEMBERS

        }

        ,100, [Measures].[Store Sales]

    )

ON AXIS(0)

FROM

[Sales]

 

U ovome trenutku Set funkcije (na osi9 i Dimenzijske djeluju jednako, jer je samo jedna dimenzija na osi.

 

Dodajmo dimenziju Product Family

 

SELECT

NON EMPTY

CrossJoin

    (

    TopCount

        (

            {

            [Customer].[hCountry].[State Province].MEMBERS

            },

            100,

            [Measures].[Store Sales]

        ),

        {

        [Product].[hProduct].[Product Family].MEMBERS

        }

    )

ON AXIS(0)

FROM

[Sales]

 

Kao što vidite TopCount je unutar funkcije koja spaja dvije dimenzije (CrossJoin) primijenjena samo na dimenziju

Customer.

Dodajmo jednog člana iz dimenzije Customer. U našem slučaju USA

 

SELECT

NON EMPTY

CrossJoin

    (

    TopCount

        (

            {

            [Customer].[hCountry].[State Province].MEMBERS ,

            [Customer].[hCountry].[Country].&[USA]

            },

            100,

            [Measures].[Store Sales]

        ),

        {

        [Product].[hProduct].[Product Family].MEMBERS

        }

    )

ON AXIS(0)

FROM

[Sales]

 

Kako je TopCount primijenjena na dimenziju Customer, član iz te dimenzije bit će smješten unutar

TopCount funkcije, pa će ona djelovati i na njega.

 

 

UNUTRAŠNJE FUNKCIJE

Unutrašnje funkcije će uvijek djelovati na jedan element u CubePlayeru neovisno što je on.

DA bolje shvatite, to je ono što je u jednom retku u dizajneru, bilo da je razina, član ili neki kombinirani element.

 

Primjer                      Imamo razinu State Province u stupcima

Primijenit ćemo TopCount 100 (najboljih 100)  na jedan element (gore spomenutu razinu)

 

SELECT

NON EMPTY

TopCount

    (

        {

        [Customer].[hCountry].[State Province].MEMBERS

        }

        ,100, [Measures].[Store Sales]

    )

ON AXIS(0)

FROM

[Sales]

 

U ovome trenutku Funkcije na osi, Dimenzijske funkcije i Element funkcije su isto, jer je samo jedan element na osi.

 

Dodajmo drugi element iz druge dimenzije

 

SELECT

NON EMPTY

CrossJoin

    (

        {

        TopCount

            (

                {

                [Customer].[hCountry].[State Province].MEMBERS

                }

                ,100, [Measures].[Store Sales]

            )

        },

        {

        [Product].[hProduct].[Product Family].MEMBERS

        }

    )

ON AXIS(0)

FROM

[Sales]

 

U ovome trenutku Elementi Dimenzija i Dimenzijska funkcija primijenjena na dimenziju Customer bile bi iste, jer je

Samo jedan element iz dimenzije na osi (razina State Province)

 

Dodajmo drugi element (član USA) iz dimenzije Customer.

 

SELECT

NON EMPTY

CrossJoin

    (

        {

        TopCount

            (

                {

                [Customer].[hCountry].[State Province].MEMBERS

                }

                ,100, [Measures].[Store Sales]

            ),

            [Customer].[hCountry].[Country].&[USA]

        },

        {

        [Product].[hProduct].[Product Family].MEMBERS

        }

    )

ON AXIS(0)

FROM

[Sales]

 

Kao što vidite, funkcija Top Count primijenjena je samo na element State Province, a novo dodani član USA je

Izvan nje.

Dakle Unutrašnje funkcije djeluju uvijek na SAMO jedan element u dizajneru.

 

More:

Moguæe pogreške

Najbojlih N - TopCount

Najbojlih u N% - TopPercent

Najboljih u sumi N - TopSum

Ukloni - FIlter NOT

Izoliraj - Filter

Filtriraj - Filter

Poredaj - Order

Poredaj po hijerarhiji - Hierarchize

Poredaj po abecedi - Order by alphabet

Prvih N - Head

Zadnjih N - Tail

Prikaži totale za vidljive elemente - VisualTotals

Usporedni vremenski èlanovi

Drill down - razina